/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Base;


import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

/**
 *
 * @author Maria
 */
public class ExAlumnoDB {
    
    public boolean grabarExalumno(String cedula) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        boolean resultado = stmt.execute("INSERT INTO EXALUMNO VALUES ('" + cedula + "')");
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    public String cargarColegio(String cedula) throws SQLException {
        String info= null;
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
   
        String consulta = "SELECT NOMBRE, CALIFICACION FROM COLEGIO, COLEGIO_EXALUMNO WHERE COLEGIO_EXALUMNO.CEDULA_EXALUMNO='"+ cedula +"' AND COLEGIO_EXALUMNO.ID_COLEGIO=COLEGIO.ID_COLEGIO"; 
        ResultSet resultado = stmt.executeQuery(consulta);
            while (resultado.next())
            {
                
                info = resultado.getString("NOMBRE");
            }
            
            db.getConnection().close();
            return info;
    }
    
    public TableModel cargarUniversidad(DefaultTableModel temp, String cedula) throws SQLException {
        
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
   
        String consulta = "SELECT FACULTAD.NOMBRE FACULTAD, ESCUELA.NOMBRE ESCUELA, TITULO.NOMBRE TITULO, ANIO_GRADUACION, CALIFICACION FROM TITULO_EXALUMNO, TITULO, TITULO_ESCUELA, ESCUELA, ESCUELA_FACULTAD, FACULTAD WHERE CEDULA='"+ cedula +"' AND TITULO_EXALUMNO.ID_TITULO=TITULO.ID_TITULO AND TITULO.ID_TITULO=TITULO_ESCUELA.ID_TITULO AND TITULO_ESCUELA.ID_ESCUELA=ESCUELA.ID_ESCUELA AND ESCUELA.ID_ESCUELA=ESCUELA_FACULTAD.ID_ESCUELA AND ESCUELA_FACULTAD.ID_FACULTAD=FACULTAD.ID_FACULTAD"; 
        ResultSet resultado = stmt.executeQuery(consulta);
            while (resultado.next())
            {
                
                Object nuevo[] = {resultado.getString("FACULTAD"), resultado.getString("ESCUELA"), resultado.getString("TITULO"), resultado.getString("ANIO_GRADUACION"), resultado.getString("CALIFICACION")};
                temp.addRow(nuevo);
            }
            db.getConnection().close();
            return temp;
            
            
    }
    

    public String obtenerRepresentante(String cedula) throws SQLException {
        String info= null;
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
   
        String consulta = "SELECT NOMBRE FROM EXALUMNO_REPRESENTANTE, REPRESENTANTE WHERE CEDULA_EXALUMNO='"+ cedula +"' AND EXALUMNO_REPRESENTANTE.ID_REPRESENTANTE=REPRESENTANTE.ID_REPRESENTANTE"; 
        ResultSet resultado = stmt.executeQuery(consulta);
            while (resultado.next())
            {
                
                info = resultado.getString("NOMBRE");
            }
            
            db.getConnection().close();
            return info;
    }

    public int actualizarTrabajo(String cedula, String empresa, String cargo, String dia, String mes, String anio) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
       
        int resultado = stmt.executeUpdate("UPDATE CARGO_EXALUMNO SET FECHA_FINALIZACION=TO_DATE('"+ dia +"-"+ mes +"-"+ anio +"','DD-MM-YYYY'), TRABAJA_ACTUAL=0 WHERE CEDULA_EXALUMNO='"+ cedula +"' AND (SELECT ID_EMPRESA FROM EMPRESA WHERE NOMBRE='"+ empresa +"')=ID_EMPRESA AND (SELECT ID_CARGO FROM CARGO WHERE NOMBRE='"+ cargo +"')=ID_CARGO");
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    public boolean ingresarTrabajoActual(String cedula, String empresa, String cargo, String descripcion, String dia, String mes, String anio) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        boolean resultado = stmt.execute("INSERT INTO CARGO_EXALUMNO VALUES ((SELECT ID_EMPRESA FROM EMPRESA WHERE NOMBRE='"+ empresa +"'), (SELECT ID_CARGO FROM CARGO WHERE NOMBRE='"+ cargo +"'), '"+ cedula +"', TO_DATE('"+ dia +"-"+ mes +"-"+ anio +"','DD-MM-YYYY'), NULL, '"+ descripcion +"', 1)");
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    public boolean eliminarTrabajo(String cedula, String empresa, String cargo) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        boolean resultado = stmt.execute("DELETE FROM CARGO_EXALUMNO WHERE CEDULA_EXALUMNO='"+ cedula +"' AND (SELECT ID_EMPRESA FROM EMPRESA WHERE NOMBRE='"+ empresa +"')=ID_EMPRESA AND (SELECT ID_CARGO FROM CARGO WHERE NOMBRE='"+ cargo +"')=ID_CARGO");
        var.commit();
        db.getConnection().close();
        return resultado;
    }

   

    public Vector<Object> LlenarComboBoxColegio() {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Object ListaTemporal ;
        
   
                try 
                    {     
                          ResultSet resultado;
                          Statement sentencia;                          
                          sentencia=var.createStatement();
                          resultado=sentencia.executeQuery("SELECT NOMBRE FROM COLEGIO");
                                            
                         Vector<Object> data=new Vector<Object>();                         
                     
                           if(resultado.next())
                             {   
                             do 
                               { 
                                 ListaTemporal = new Object();
                                 ListaTemporal = resultado.getString("NOMBRE");
                        	                                  
                                 data.addElement(ListaTemporal);
                                 
                               }
                            while(resultado.next()); 
                            return data;
                           
                            }
                          else
                        	{ 
                            return null;
                          }            
                    }  
               catch(Exception ex)
                {
                   System.out.print(ex);
                    return null;
                }   
    }

    public boolean IngresarColegio(String nombre) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        boolean resultado = stmt.execute("INSERT INTO COLEGIO VALUES (INCREMENTO_COLEGIO.NEXTVAL,'" + nombre + "')");
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    public int actualizarColegio(String cedula, String nombre, String promedio) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        Boolean resul;
        int resultado = stmt.executeUpdate("UPDATE COLEGIO_EXALUMNO SET ID_COLEGIO=(SELECT ID_COLEGIO FROM COLEGIO WHERE NOMBRE='"+ nombre +"'), CALIFICACION='"+ promedio +"' WHERE CEDULA_EXALUMNO='"+ cedula+"'");
        if (resultado == 0)
                resul = stmt.execute("INSERT INTO COLEGIO_EXALUMNO VALUES ((SELECT ID_COLEGIO FROM COLEGIO WHERE NOMBRE='"+ nombre +"'), '"+ cedula +"', '"+ promedio +"')");
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    /*public boolean IngresarColegioAlumno(String cedula, String nombre) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        boolean resultado = stmt.execute("INSERT INTO COLEGIO_EXALUMNO VALUES ((SELECT ID_COLEGIO FROM COLEGIO WHERE NOMBRE='"+ nombre +"'),'" + cedula + "')");
        var.commit();
        db.getConnection().close();
        return resultado;
    }*/

    public boolean grabarExalumnoTitulo(String cedula, String titulo)throws SQLException  {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        boolean resultado = stmt.execute("INSERT INTO TITULO_EXALUMNO VALUES ("+titulo+",'" + cedula + "',null,null)");
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    public int tipoOtro(String cedula, String otro) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        Boolean resul;
        int resultado = stmt.executeUpdate("UPDATE PERSONA_OTRO SET DESCRIPCION='"+ otro +"' WHERE CEDULA='"+ cedula+"'");
        if(resultado == 0)
            resul = stmt.execute("INSERT INTO PERSONA_OTRO VALUES ('"+ cedula +"', '"+ otro +"')");
        
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    public String ObtenerOtro(String cedula) throws SQLException {
        String info= null;
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
   
        String consulta = "SELECT DESCRIPCION FROM PERSONA_OTRO WHERE CEDULA='"+ cedula +"' "; 
        ResultSet resultado = stmt.executeQuery(consulta);
            while (resultado.next())
            {
                
                info = resultado.getString("DESCRIPCION");
            }
            
            db.getConnection().close();
            return info;
    }

    public int actualizarMetodo(String cedula, int i) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        Boolean resul;
       
        int resultado = stmt.executeUpdate("UPDATE METODO SET METODO="+ i +" WHERE CEDULA='"+ cedula +"' ");
        if(resultado == 0)
            resul = stmt.execute("INSERT INTO METODO VALUES ("+ i +", CONTACTO=0,' "+ cedula +"')");
        
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    public boolean buscarExalumno(String cedula) throws SQLException {
        
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
   
        String consulta = "SELECT * FROM EXALUMNO WHERE CEDULA_EXALUMNO='"+ cedula +"' "; 
        ResultSet resultado = stmt.executeQuery(consulta);
            while (resultado.next())
            {
                db.getConnection().close();
                return true;
            }
            
            db.getConnection().close();
            return false;
    }

    public ArrayList<String> listarRepresentante() throws SQLException {
        ArrayList<String> lista=new ArrayList();
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        String consulta="SELECT NOMBRE FROM REPRESENTANTE";
        ResultSet resultado=stmt.executeQuery(consulta);
        
        while (resultado.next())
        {
            lista.add(resultado.getString("NOMBRE"));
        }
        db.getConnection().close();
        return lista;
    }

    public int actualizarRepresentante(String cedula, String repres) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        Boolean resul;
       
        int resultado = stmt.executeUpdate("UPDATE EXALUMNO_REPRESENTANTE SET ID_REPRESENTANTE=(SELECT ID_REPRESENTANTE FROM REPRESENTANTE WHERE NOMBRE='"+ repres +"') WHERE CEDULA_EXALUMNO='"+ cedula +"'");
        if(resultado == 0)
            resul = stmt.execute("INSERT INTO EXALUMNO_REPRESENTANTE VALUES ('"+ cedula +"', (SELECT ID_REPRESENTANTE FROM REPRESENTANTE WHERE NOMBRE='"+ repres +"'), 1)");
        
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    public String obtenerPromedio(String cedula) throws SQLException {
        String info= null;
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
   
        String consulta = "SELECT NOMBRE, CALIFICACION FROM COLEGIO, COLEGIO_EXALUMNO WHERE COLEGIO_EXALUMNO.CEDULA_EXALUMNO='"+ cedula +"' AND COLEGIO_EXALUMNO.ID_COLEGIO=COLEGIO.ID_COLEGIO"; 
        ResultSet resultado = stmt.executeQuery(consulta);
            while (resultado.next())
            {
                
                info = resultado.getString("CALIFICACION");
            }
            
            db.getConnection().close();
            return info;
    }

    public int actualizarUniversidad(String cedula, String facultad, String escuela, String titulo, String graduacion, String nota) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
       
       
        int resultado = stmt.executeUpdate("UPDATE TITULO_EXALUMNO SET ID_TITULO=(SELECT ID_TITULO FROM TITULO WHERE NOMBRE='"+ titulo +"'), ANIO_GRADUACION="+ graduacion +", CALIFICACION='"+ nota +"' WHERE CEDULA='"+ cedula +"' ");
        
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    public Boolean ingresarUniversidad(String cedula, String facultad, String escuela, String titulo, String graduacion, String nota) throws SQLException {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
       
       
        Boolean resultado = stmt.execute("INSERT INTO TITULO_EXALUMNO VALUES((SELECT ID_TITULO FROM TITULO WHERE NOMBRE='"+ titulo +"'),'"+ cedula +"', "+ graduacion +", '"+ nota +"')");
        
        
        var.commit();
        db.getConnection().close();
        return resultado;
    }

    
    

}
